package org.keyintegrity.webbeans.metadata.store;

import java.util.List;

import org.keyintegrity.webbeans.metadata.BeanMetadata;

public interface MetadataStore {

    public String getName();
    
    public List<BeanMetadata> getMetadataList() throws MetadataStoreException;
    
    public BeanMetadata acquireBeanMetadataForClass(Class clazz) throws MetadataStoreException;
    
    public BeanMetadata lookupBeanMetadataForClass(Class clazz) throws MetadataStoreException;

    public BeanMetadata loadMetadata(String clazz) throws MetadataNotFoundException, MetadataStoreException;

    public void storeMetadata(BeanMetadata metadata) throws MetadataStoreException;
    
    public void removeMetadata(BeanMetadata metadata);
    
    public void clear();

}
